package com.zzx.service.imp;

import com.zzx.bean.User;
import com.zzx.dao.BaseAdminDao;
import com.zzx.dao.BaseUserDao;
import com.zzx.dao.imql.UserDaoImp;
import com.zzx.exception.DuplicateIdentityException;
import com.zzx.service.BaseUserService;

import java.util.List;
import java.util.Map;

/**
 * @Author: Spider Man
 * @Description:
 * @Date Created in 2020-09-16 11:10
 * @Modified By:
 */
public class UserService implements BaseUserService {

    private UserDaoImp userDaoImp = new UserDaoImp();

    /**
     * 用于显示用户人数和用户日注册量
     *
     * @return {size:总数，day:日增加量}
     */
    @Override
    public List<Map<String, Integer>> console() {
        return userDaoImp.console();
    }

    /**
     * 用于查询所有用户的信息
     *
     * @param limit      是否分页的标记，true表示要分页，false表示不用分页
     * @param offset     SQL语句的起始索引
     * @param pageNumber 页查询的数量
     * @return 用户员的集合
     */
    @Override
    public List<User> findAllUserInfo(boolean limit, int offset, int pageNumber) {
        return userDaoImp.findAllUserInfo(limit,offset,pageNumber);
    }

    /**
     * 根据手机号查找用户
     *
     * @param uPhone 要查找的用户的手机号
     * @return 用户的信息
     */
    @Override
    public User findUserByUPhone(String uPhone) {
        return userDaoImp.findUserByUPhone(uPhone);
    }

    /**
     * 插入用户信息
     *
     * @param user 插入用户信息
     * @return true表示成功, false表示失败
     */
    @Override
    public boolean insert(User user){
        try {
            return userDaoImp.insert(user);
        } catch (DuplicateIdentityException e) {
            return false;
        }
    }

    /**
     * 用户的修改
     *
     * @param uid  用户的ID
     * @param user 新的用户对象
     * @return ture表示更新成功，false表示更新失败
     */
    @Override
    public boolean update(int uid, User user) {
        return userDaoImp.update(uid,user);
    }

    /**
     * 根据ID删除用户信息
     *
     * @param uid 要删除的用户ID
     * @return true表示成功，false表示删除失败
     */
    @Override
    public boolean delete(int uid) {
        return userDaoImp.delete(uid);
    }
}
